package com.xiejr.api.dto.user;

import com.xiejr.model.entity.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.time.LocalDateTime;

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel("用户表 数据传输对象")
public class UserDTO extends BaseEntity.BaseDTO {
    private static final long serialVersionUID = -99433182562470104L;
    /**
     * 主键id 用户id
     */
    @ApiModelProperty(value = "主键id 用户id")
    @NotEmpty(message = "主键id 用户id不得为空")
    private String id;


    /**
     * 用户名 用户名
     */
    @ApiModelProperty(value = "用户名 用户名")
    @NotEmpty(message = "用户名 用户名不得为空")
    private String username;


    /**
     * 密码 密码
     */
    @ApiModelProperty(value = "密码 密码")
    @NotEmpty(message = "密码 密码不得为空")
    private String password;


    /**
     * 昵称 昵称
     */
    @ApiModelProperty(value = "昵称 昵称")
    @NotEmpty(message = "昵称 昵称不得为空")
    private String nickname;


    /**
     * 真实姓名
     */
    @ApiModelProperty(value = "真实姓名")
    @NotEmpty(message = "真实姓名不得为空")
    private String realname;


    /**
     * 头像
     */
    @ApiModelProperty(value = "头像")
    @NotEmpty(message = "头像不得为空")
    private String face;


    /**
     * 手机号 手机号
     */
    @ApiModelProperty(value = "手机号 手机号")
    @NotEmpty(message = "手机号 手机号不得为空")
    private String mobile;


    /**
     * 邮箱地址 邮箱地址
     */
    @ApiModelProperty(value = "邮箱地址 邮箱地址")
    @NotEmpty(message = "邮箱地址 邮箱地址不得为空")
    private String email;


    /**
     * 性别 性别 1:男  2 女
     */
    @ApiModelProperty(value = "性别 性别 1:男  2 女")
    @NotNull(message = "性别 性别 1:男  2 女不得为空")
    private Integer sex;


    /**
     * 生日 生日
     */
    @ApiModelProperty(value = "生日 生日")
    @NotEmpty(message = "生日 生日不得为空")
    private String birthday;


    /**
     * 创建时间 创建时间
     */
    @ApiModelProperty(value = "创建时间 创建时间")
    @NotNull(message = "创建时间 创建时间不得为空")
    private LocalDateTime createdTime;


    /**
     * 更新时间 更新时间
     */
    @ApiModelProperty(value = "更新时间 更新时间")
    @NotNull(message = "更新时间 更新时间不得为空")
    private LocalDateTime updatedTime;


    /**
     * 用户当前拥有的所有积分
     */
    @ApiModelProperty(value = "用户当前拥有的所有积分")
    @NotNull(message = "用户当前拥有的所有积分不得为空")
    private Long points;


}